System and method for indoor geolocation and mapping

ABSTRACT

Methods and systems to provide location and navigation information to a user within a building. In an embodiment, low power radars may be used to locate and track a user. Moreover, the systems and methods described herein may take advantage of the known layout of a building, or may ascertain the layout using the radar devices. This information may be used to direct a user from a current location to a desired destination. In some contexts, such as stores, radio frequency ID (RFID) tags may be used to identify a particular destination, such as a particular product in a particular aisle in a store. Multiple persons may be tracked as they move about the building, so that the more frequently used paths may be identified for moving from point to point. These identified paths may then be used in constructing a path for a user who needs directions.

TECHNICAL FIELD

Embodiments described herein relate to geolocation.

BACKGROUND

Geolocation technology has been generally available to consumers forseveral years. Global Positioning System (GPS) devices are commonlybuilt into automobiles, and are readily available as portable devices.As a result, a user may now easily find his current location when in avehicle or when walking, and can navigate through a city or across acontinent using this technology. The user is presented with electronicmaps, and can be given point-to-point directions upon request.

In other situations, however, a user may require navigational assistanceon a more local level. In particular, some buildings and otherstructures can have complicated layouts, such that navigating such abuilding or structure can be difficult. Shopping malls may cover severalacres, for example, and may have multiple wings and several floors.Airports may resemble small cities, and have numerous terminals, waitingareas, and baggage claim facilities. Subway stations may have severaltrain platforms that may be located on any of several levels.

In these situations, the value of current GPS technology is limited.Most notably, the signaling that is used in GPS systems is generallyunable to penetrate dense building materials, such as the concrete,metal, and other materials that may be used in the walls and roofs of abuilding. As a result, traditional GPS is generally unable to assist auser in navigation of indoor facilities such as those mentioned above.

BRIEF DESCRIPTION OF THE DRAWINGS/FIGURES

FIG. 1 illustrates an exemplary operational setting for the systems andmethods described herein, according to an embodiment.

FIG. 2 is a flow chart illustrating the determination of a user'slocation, according to an embodiment.

FIG. 3 is a flow chart illustrating the determination of a user's path,according to an embodiment.

FIG. 4 is a flow chart illustrating the determination of most frequentlyused paths through a building, according to an embodiment.

FIG. 5 is a flow chart illustrating the determination of a recommendedpath for a user seeking directions, according to an embodiment.

FIG. 6 is a block diagram illustrating a software or firmwareembodiment.

In the drawings, the leftmost digit(s) of a reference number identifiesthe drawing in which the reference number first appears.

DETAILED DESCRIPTION

An embodiment is now described with reference to the figures, where likereference numbers indicate identical or functionally similar elements.While specific configurations and arrangements are discussed, it shouldbe understood that this is done for illustrative purposes only. A personskilled in the relevant art will recognize that other configurations andarrangements can be used without departing from the spirit and scope ofthe description. It will be apparent to a person skilled in the relevantart that this can also be employed in a variety of other systems andapplications other than what is described herein.

Disclosed herein are methods and systems to provide location andnavigation information to a user within a building. In an embodiment,low power radars may be used to locate and track a user. Moreover, thesystems and methods described herein may take advantage of the knownlayout of a building, or may ascertain the layout using the radardevices. This information may be used to direct a user from a currentlocation to a desired destination. In some contexts, such as stores,radio frequency ID (RFID) tags may be used to identify a particulardestination, such as a particular product in a particular aisle in astore. Multiple persons may be tracked as they move about the building,so that the more frequently used paths may be identified for moving frompoint to point. These identified paths may then be used in constructinga path for a user who needs directions.

FIG. 1 illustrates a situation where the systems and methods describedherein may be implemented. A floor plan of a building 100 isillustrated. Four radar devices are present in the illustratedembodiment, shown here as 110 a, . . . 110 d. While four radar devicesare shown, it is to be understood that a greater or lesser number may beused in alternative embodiments. In an embodiment, each of these radardevices may be a micropower impulse radar (MIR). In an embodiment, eachMIR may have a range of 100 feet and may be relatively low powered,e.g., approximately 100 microwatts. Their respective locations in thebuilding may be predetermined; alternatively, their locations may beascertained after installation, using triangulation techniques andultra-wideband (UWB) radio frequency ID (RFID) tags affixed to eachradar device. The radar devices 110 a, . . . 110 d may each transmitradar pulses in a range of directions, and may then note the directionfrom which a reflection is received. Given the location of each radardevice, the directions from which the reflections arrive can yield thelocation of an object (e.g., user 130). Note that while FIG. 1illustrates a one-floor building, the systems and methods describedherein may also operate in a three-dimensional setting, where thebuilding may have multiple floors. Here, the user's location may beidentified in three-dimensional space.

By combining this direction information from the radar devices 110 a, .. . 110 d, the location of user 130 may be ascertained usingtriangulation, for example. In an embodiment, the direction informationmay be sent from each of the radar devices 110 a, . . . 110 d to acomputing device 135 carried by the user 130. This user device 135 maybe any computing device, such as a smartphone, tablet, or wearablecomputing device for example. An application running on a processor insuch a user device 135 may perform the triangulation or othercalculation and may then inform user 130 of his location. Such aprocessor in user device 135 may therefore serve as a locationprocessor. The communication of the direction information from the radardevices to the user device 135 may take place using any protocol orprocess known to persons of ordinary skill in the art. In variousembodiments, this communication may take place using wi-fi, or using UWBpackets. In an embodiment, the user device 135 may include an RFID tag,to allow identification of the particular user 130.

Alternatively, the direction information may be sent from the radardevices 110 a, . . . 110 d to a processor unit 115, which may thenperform the triangulation or other calculation using an applicationprogram executing on a location processor to determine the location ofuser 130. This location information may then be transmitted to the userdevice 135 from the processor unit. In such an embodiment, the radardevices 110 a, . . . 110 d may be in communication with each other andwith the processor unit 115, as shown by the dashed lines. Inembodiments, these communications may take place using wi-fi or usingUWB packets.

Note that while the processor unit 115 is shown in the building, in analternative embodiment the processor unit 115 may be offsite. Moreover,this unit may take the form of any programmable computing device, suchas a server, for example.

In addition, the location of user 130 may be determined repeatedly, andthese locations compiled to determine the movement of user 130. In thisway, the direction in which user 130 is heading may be determined.Again, such a determination may be performed either at the user device135, or by the processor unit 115 and communicated to the user device.

Moreover, the movement of multiple persons may be similarly determined.This may allow for the determination of the most frequently used pathsthrough building 100. This information may be used if the user 130 asksfor assistance in navigating building 100. The user 130 may ask fordirections regarding how to go from his current location to a desireddestination 140, for example. In an embodiment, this query may bedirected to processor unit 115. In the context of a supermarket, forexample, destination 140 may be the location of a particular item, andmay be marked by an RFID tag to allow mapping of the item to thelocation. By having determined the most frequently used paths throughbuilding 110, this may then allow the identification and recommendationof a path 150 for the user in response to his query, where the path isdetermined using a crowd-sourced approach based on the most popularpaths. In various embodiments, the determination of the most frequentlyused paths and the construction of a path for the user may be performedby the processor unit 115 or by user device 135.

In an embodiment, the layout of building 100 may be made available tothe system described here, and stored. Alternatively, the layout ofbuilding 100 may be ascertained using the radar devices 110 a, . . . 110d. This latter approach may be used, for example, to determine thepresence and location of obstructions 121, 122, and 123. Theseobstructions may be support structures, walls, or partitions, forexample, or shelves in a store. The layout may be then used inconstraining a path for user 130.

The determination of a user's location in a building is illustrated inFIG. 2, according to an embodiment. At 210, each of the radar devicesdetects the user's location at a respective direction, given thedifferent location of each radar device. At 220, the radar devices eachsend their direction information to a user device. At 230, a locationprocessor in the user device may calculate the user's location based onthe direction information received from the radar devices. Atriangulation algorithm may be used for this purpose in an embodiment.At 240, the user's calculated location may be transmitted to theprocessor unit and/or may be displayed locally to the user. As mentionedabove, the processor unit may compile the user's location informationover a time interval to determine his movement along a path; theprocessor unit may further compile the paths taken by multiple users inorder to determine the most frequently used paths through a building.

Note that in an alternative embodiment, the direction informationcollected by the radar devices may be sent instead to the processorunit, where a location processor may then calculate the user's location.In such an embodiment, the calculated location information may then besaved at the processor unit and transmitted to the user's device.

The systems and methods described herein may be used to providedirections to a user. This is illustrated in FIG. 3, according to anembodiment. At 310, the user's location may be determined. This may beperformed according to the process of FIG. 2, for example. At 320, theuser's location information and desired destination may be sent to theprocessor unit, assuming that the location is calculated at the userdevice. If the location is calculated at the processor unit, then thelocation would obviously be available at the processor unit after thecalculation, making the delivery of the location to the processor unitunnecessary. At 330, the processor unit may determine the mostfrequently used paths (or segments thereof) through the building. In analternative embodiment, these paths may have been previously determinedand their definitions stored. These paths or path segments may be usedat 340, where a path from the user's location to his desired destinationmay be determined. In an embodiment, one or more possible paths from theuser's location to his desired destination may be constructed on thebasis of the building's layout. A particular path may then be chosen ifit incorporates one or more of the most frequently used paths or pathsegments. This allows crowd-sourcing to influence determination of apath for the user. At 350, a description of the final determined path issent to the user as a recommended path.

The determination of the most frequently used paths through a building(330 of FIG. 3) is illustrated in greater detail in FIG. 4. In anembodiment, the illustrated process may be performed at the processorunit. At 410, the direction information of a user may be received fromthe radar devices. As discussed above, this direction informationcomprises the direction from which radar signals are reflected back toeach radar device. At 420, the user's location may be determined fromthis direction information using triangulation, for example. Note thatin an alternative embodiment, 410-420 may be performed at the user'sdevice (as shown in FIG. 2) instead of being performed at the processorunit. In such an embodiment, the resulting location information may thenbe sent to the processor unit.

At 430 the determined location information of the user may be saved. At440, a determination may be made as to whether enough information hasbeen received to determine the user's path. If not, then processing maycontinue at 410-420, where the next location of the user may bedetermined. If enough information has been obtained, then processing maycontinue at 450. Here the user's path may be determined on the basis ofthe user's location information. A threshold for what constitutes enoughinformation may be a predetermined quantity. A single location may notgenerally be enough to determine a path, and a short sequence oflocations may likewise not be enough to determine a path. A longersequence of locations may, on the other hand, be sufficient to determinea path. In an embodiment, an appropriate threshold may be determinedempirically.

At 460, data describing the user's determined path may be compiled withsimilar data of other users. This may allow a determination (at 470) ofthe most frequently used paths or segments thereof.

For example, in a supermarket, there may be a path that most customersuse when walking from the front door to the pharmacy. This path would betaken by those customers who are familiar with the store and thereforeknow the most direct route, e.g. using aisle 5. This would be reflectedin a compilation of users' paths, and may be viewed as a crowd-sourceddetermination of the most practical route. Moreover, aisle 5 mayrepresent the most efficient way to travel from the front of the storeto the back, and may be used by people who need to go to that part ofthe building, even if their complete path takes them to a location otherthan the pharmacy. In this case, aisle 5 may represent a frequently usedsegment of a path. Determination of such path segments may also beuseful in determining the most efficient path for the present user,given his desired destination.

In addition to helping the user navigate through a building, theidentification of the most frequently used paths through the buildingmay have significant commercial value. Knowing the most commonly usedpaths would allow for optimal advertising placement, for example, and/orwould allow for practical, user-friendly organization of a store'sinventory.

The determination of a path for a user who requests directions isillustrated in FIG. 5, according to an embodiment. In an embodiment,this determination may be performed at the processor unit. At 510, theuser's location may be received or otherwise determined. Note that ifthe user's location is calculated at the user's device, then the user'scalculated location information may be sent by the user's device andreceived by the processor unit. At 520, the local topology of thebuilding may be determined. In an alternative embodiment, the topologymay have been previously determined using the radar devices, or may beotherwise previously provided to the processor unit. At 530, the user'sdesired location may be received from the user's device after havingbeen entered by the user. At 540, a path from the user's currentlocation to the desired destination may be constructed. In theillustrated embodiment, such a path may be constructed using the mostfrequently used paths or segments thereof.

Various embodiments may be implemented using hardware elements, softwareelements, or a combination of both. Examples of hardware elements mayinclude processors, microprocessors, circuits, circuit elements (e.g.,transistors, resistors, capacitors, inductors, and so forth), integratedcircuits, application specific integrated circuits (ASIC), programmablelogic devices (PLD), digital signal processors (DSP), field programmablegate array (FPGA), logic gates, registers, semiconductor device, chips,microchips, chip sets, modules composed of such elements, and so forth.

Examples of software may include software components, computer programs,application programs, system programs, machine programs, operatingsystem software, middleware, firmware, software modules, routines,subroutines, functions, methods, procedures, software interfaces,application program interfaces (API), instruction sets, computing code,code segments, words, values, symbols, or any combination thereof.Determining whether an embodiment is implemented using hardware elementsand/or software elements may vary in accordance with any number offactors, such as desired computational rate, power levels, heattolerances, processing cycle budget, input data rates, output datarates, memory resources, data bus speeds and other design or performanceconstraints.

The terms software and firmware, as used herein, may refer to a computerprogram product including a computer readable medium having computerprogram logic stored therein to cause a computer system to perform oneor more features and/or combinations of features disclosed herein. Thiscomputer program logic may represent control logic to direct theprocessing of the computer. The computer readable medium may betransitory or non-transitory. An example of a transitory computerreadable medium may be a digital signal transmitted over a radiofrequency or over an electrical conductor, through a local or wide areanetwork, or through a network such as the Internet. An example of anon-transitory computer readable medium may be a compact disk, a flashmemory, random access memory (RAM), read-only memory (ROM), or otherdata storage device or tangible medium.

A computing system that executes such software/firmware is shown in FIG.6, according to an embodiment. The illustrated system 600 may representa processor unit and may include one or more processor(s) 620 and mayfurther include a body of memory 610. Processor(s) 620 may include oneor more central processing unit cores and/or a graphics processing unithaving one or more GPU cores. Memory 610 may include one or morecomputer readable media that may store computer program logic 640.Memory 610 may be implemented as a hard disk and drive, a removablemedia such as a compact disk, a read-only memory (ROM) or random accessmemory (RAM) device, for example, or some combination thereof.Processor(s) 620 and memory 610 may be in communication using any ofseveral technologies known to one of ordinary skill in the art, such asa bus or point-to-point interconnect. Computer program logic 640contained in memory 610 may be read and executed by processor(s) 620.One or more I/O ports and/or I/O devices, shown collectively as I/O 630,may also be connected to processor(s) 620 and memory 610.

Computer program logic 640 may include logic that embodies some or allof the processing described above. In the illustrated embodiment,computer program logic 640 may include a user communications module 642to allow interaction between the processor unit and the user device.Computer program logic 640 may also include a location calculationmodule 644 for calculation of the user's location on the basis of theinformation provided by the radar devices. If the location calculationfunction is implemented in the processing unit (as shown here), thenprocessor 620 may be viewed as the location processor. Alternatively,the location of the user may be calculated at the user device, and aprocessor incorporated therein may be viewed as the location processor.

Computer program logic 640 may also include a path determination module646 for determination of the user's path through the building, asillustrated in FIG. 4, according to an embodiment. Computer programlogic 640 may also include a module 648 for determining a recommendedpath for the user upon a request for directions, as illustrated in FIGS.4 and 5, according to an embodiment.

Note that in other embodiments, modules 642-648 may be implemented inhardware, or in a combination of hardware, software, and/or firmware.

Methods and systems are disclosed herein with the aid of functionalbuilding blocks illustrating the functions, features, and relationshipsthereof. At least some of the boundaries of these functional buildingblocks have been arbitrarily defined herein for the convenience of thedescription. Alternate boundaries may be defined so long as thespecified functions and relationships thereof are appropriatelyperformed.

While various embodiments are disclosed herein, it should be understoodthat they have been presented by way of example only, and notlimitation. It will be apparent to persons skilled in the relevant artthat various changes in form and detail may be made therein withoutdeparting from the spirit and scope of the methods and systems disclosedherein. Thus, the breadth and scope of the claims should not be limitedby any of the exemplary embodiments disclosed herein.

The following examples pertain to various embodiments.

Example 1 is a system, comprising: a plurality of radar devices inside abuilding, each configured to determine the direction, relative to theradar device, at which a user is positioned, and a location processorconfigured to receive the respective directions from the radar devices,and to calculate a location of the user inside the building.

In example 2, the radar devices of example 1 comprise micropower impulseradars.

In example 3, the location processor of example 1 is incorporated into aprocessor unit in communication with the radar devices, wherein theprocessor unit is configured to send information to the user describingthe location of the user.

In example 4, the location processor of example 1 is incorporated in auser device carried by the user, through which the location iscommunicated to the user and to a processor unit external to the userdevice.

In example 5, example 1 further comprises a processor unit incommunication with the radar devices, wherein the processor unit isconfigured to determine a path of the user based on a sequence oflocations of the user.

In example 6, the processor unit of example 5 is further configured todetermine locations and paths of other persons who are or have been inthe building.

In example 7, the processor unit of example 6 is further configured todetermine frequently used paths in the building, on the basis of thepaths of the other persons.

In example 8, the processor unit of example 7 is further configured toreceive a description of a desired destination from the user, todetermine a recommended path from the user's location to thedestination, and to inform the user of the recommended path.

In example 9, the destination of example 8 is marked with and identifiedby a radio frequency ID (RFID) tag at the destination.

In example 10, a user device carried by the user in example 1 is markedwith and identified by an RFID tag.

Example 11 is a method, comprising: at each of the plurality of radardevices inside a building, determining a direction, relative to theradar device, at which a user is positioned; and at a locationprocessor, calculating a location of the user inside the building usingthe determined directions.

In example 12, the plurality of radar devices of example 11 comprisesmicropower impulse radars.

In example 13, example 11 further comprises: communicating the locationto a user device carried by the user and to a processor unit external tothe user device.

In example 14, example 11 further comprises: at a processor unit,determining a path of the user based on the sequence of locations of theuser.

In example 15, example 14 further comprises: determining, at theprocessor unit, locations and paths of other persons who are or havebeen in the building.

In example 16, example 15 further comprises: determining, at theprocessor unit, frequently used paths in the building wherein thedetermination is made on the basis of the paths of the other persons.

In example 17, example 16, further comprises: receiving a description ofa desired destination from the user; and determining a recommended pathfrom the user's location to the destination, the recommended pathcomprising one or more of the frequently used paths.

In example 18, example 17, further comprises: informing the user of therecommended path.

Example 19 is one or more computer readable media comprising havingcomputer control logic stored thereon, the computer control logiccomprising logic configured to cause a processor to: determine a path ofthe user based on the sequence of locations of the user.

In example 20, example 19 further comprises logic configured to causethe processor to: calculate a location of the user inside the buildingusing a plurality of directions determined relative to a plurality ofrespective radar devices, wherein the respective directions aredirections at which the user's position is detected by the respectiveradar devices.

In example 21, example 20 further comprises logic configured to causethe processor to: communicate the location to a user device carried bythe user and to a processor unit external to the user device.

In example 22, example 21 further comprises logic configured to causethe processor to: determine locations and paths of other persons who areor have been in the building.

In example 23, example 22 further comprises logic configured to causethe processor to: determine frequently used paths in the building on thebasis of the paths of the other persons.

In example 24, example 23 further comprises logic configured to causethe processor to: receive a description of a desired destination fromthe user; and determine a recommended path from the user's location tothe destination, the recommended path comprising one or more frequentlyused paths.

In example 25, example 24 further comprises logic configured to causethe processor to: inform the user of the recommended path.

Example 26 is a system for geolocation, comprising: a plurality of radardevices inside a building, each configured to determine the direction,relative to the radar device, at which a user is positioned, and alocation processor configured to receive the respective directions fromthe radar devices, and to calculate a location of the user inside thebuilding.

In example 27, the radar devices of example 26 comprise micropowerimpulse radars.

In example 28, the location processor of example 26 is incorporated intoa processor unit in communication with the radar devices, wherein theprocessor unit is configured to send information to the user describingthe location of the user.

In example 29, the location processor of example 26 is incorporated in auser device carried by the user, through which the location iscommunicated to the user and to a processor unit external to the userdevice.

In example 30, example 26 further comprises a processor unit incommunication with the radar devices, wherein the processor unit isconfigured to determine a path of the user based on a sequence oflocations of the user.

In example 31, the processor unit of example 30 is further configured todetermine locations and paths of other persons who are or have been inthe building.

In example 32, the processor unit of example 31 is further configured todetermine frequently used paths in the building, on the basis of thepaths of the other persons.

In example 33, the processor unit of example 32 is further configured toreceive a description of a desired destination from the user, todetermine a recommended path from the user's location to thedestination, and to inform the user of the recommended path.

In example 34, the destination of example 33 is marked with andidentified by a radio frequency ID (RFID) tag at the destination.

In example 35, a user device carried by the user in example 26 is markedwith and identified by an RFID tag.

Example 36 is a method of geolocation, comprising: at each of theplurality of radar devices inside a building, determining a direction,relative to the radar device, at which a user is positioned; and at alocation processor, calculating a location of the user inside thebuilding using the determined directions.

In example 37, the plurality of radar devices of example 36 comprisesmicropower impulse radars.

In example 38, example 36 further comprises communicating the locationto a user device carried by the user and to a processor unit external tothe user device.

In example 39, example 36 further comprises: at a processor unit,determining a path of the user based on the sequence of locations of theuser.

In example 40, example 39 further comprises determining, at theprocessor unit, locations and paths of other persons who are or havebeen in the building.

In example 41, example 40 further comprises: determining, at theprocessor unit, frequently used paths in the building wherein thedetermination is made on the basis of the paths of the other persons.

In example 42, example 41 further comprises: receiving a description ofa desired destination from the user; and determining a recommended pathfrom the user's location to the destination, the recommended pathcomprising one or more of the frequently used paths.

In example 43, example 42 further comprises informing the user of therecommended path.

Example 44 is a means for geolocation, configured to cause a processorto perform the method of any of examples 36-43.

In example 45, the processor unit of example 49 is further configured todetermine locations and paths of other persons who are or have been inthe building, and to determine frequently used paths in the building, onthe basis of the paths of the other persons.

In example 46, the processor unit of example 45 is further configured toreceive a description of a desired destination from the user, todetermine a recommended path from the user's location to thedestination, and to inform the user of the recommended path.

In example 47, the destination of example 46 is marked with andidentified by a radio frequency ID (RFID) tag at the destination.

In example 48, example 14 further comprises: determining, at theprocessor unit, locations and paths of other persons who are or havebeen in the building; and determining, at the processor unit, frequentlyused paths in the building wherein the determination is made on thebasis of the paths of the other persons.

In example 49, example 48 further comprises: receiving a description ofa desired destination from the user; and determining a recommended pathfrom the user's location to the destination, the recommended pathcomprising one or more of the frequently used paths.

Example 50 is one or more computer readable media comprising havingcomputer control logic stored thereon, the computer control logiccomprising logic configured to cause a processor to perform a method ofany of claims 11-18.

What is claimed is:
 1. A system, comprising, a processor and memoryconfigured to: compute directions from which radar returns from animatebodies are received at radar devices installed at predeterminedlocations within a building, wherein the radar devices are configured totransmit radar pulses from and receive radar returns at the respectivepredetermined locations within the building without necessitating theanimate bodies to hold or wear the radar devices or a transducer; andcompute locations of the animate bodies relative to a floorplan of thebuilding based on the computed directions and the predeterminedlocations of the radar devices with the building; track movements of theanimate bodies relative to the floorplan based on the computed locationsof the animate bodies; determine frequently used paths of the floorplanbased on the tracked movements of the animate bodies; determine asuggested path for an additional animate body, from a location of theadditional animate body within the building to another location withinthe building, based on the frequently used paths; and provide thesuggested path to a wireless communication device associated with theadditional animate body.
 2. The system of claim 1, wherein the radardevices include micro-power impulse radar devices installed at thepredetermined locations within the building.
 3. The system of claim 1,wherein the processor and memory are further configured to: detectinanimate objects within the building based on radar returns from theinanimate objects received at the radar devices installed at thepredetermined locations within the building, wherein the inanimateobjects include one or more of a support structure of the building, awall of the building, a partition within the building, and a shelfwithin the building; and construct the floorplan based on the detectedinanimate objects.
 4. The system of claim 1, wherein the processor andmemory include a server-based processor and memory configured to:compute the directions from which the radar returns from the animatebodies are received at the radar devices installed at the predeterminedlocations within the building; and provide the computed directions towireless communication devices that are associated with the animatebodies and configured to compute the locations of the animate bodies. 5.The system of claim 1, wherein the processor and memory are furtherconfigured to: compute subsequent locations of the animate bodiesrelative to the floorplan based on directions from which subsequentradar returns from the respective animate bodies are received at theradar devices installed at the predetermined locations within thebuilding; and determine directions of travel of the respective animatebodies, relative to the floorplan, based on the locations of the animatebodies and the subsequent location of the respective animate bodies. 6.The system of claim 1, wherein the processor and memory are furtherconfigured to: track movements of the additional animate body relativeto the floorplan based on computed locations of the additional animatebody relative to the floorplan; and determine the suggested path for theadditional animate body based further on the tracked movements of theadditional animate body.
 7. A method, comprising: computing directionsfrom which radar returns from animate bodies are received at radardevices installed at predetermined locations within a building, whereinthe radar devices are configured to transmit radar pulses from andreceive radar returns at the respective predetermined locations withinthe building without necessitating the animate bodies to hold or wearthe radar devices or a transducer; and computing locations of theanimate bodies relative to a floorplan of the building based on thecomputed directions and the predetermined locations of the radar deviceswithin the building; tracking movements of the animate bodies relativeto the floorplan based on the computed locations of the animate bodies;determining frequently used paths of the floorplan based on the trackedmovements of the animate bodies; determining a suggested path for anadditional animate body, from a location of the additional animate bodywithin the building to another location within the building, based onthe frequently used paths; and providing the suggested path to awireless communication device associated with the additional animatebody.
 8. The method of claim 7, wherein the radar devices includemicro-power impulse radar devices installed at the predeterminedlocations within the building.
 9. The method of claim 7, furtherincluding: detecting inanimate objects within the building based onradar returns from the inanimate objects received at the radar devicesinstalled at the predetermined locations within the building, whereinthe inanimate objects include one or more of a support structure of thebuilding, a wall of the building, a partition within the building, and ashelf within the building; and constructing the floorplan based on thedetected inanimate objects.
 10. The method of claim 7, furtherincluding: performing the computing directions in a computer server; andproviding the computed directions to wireless communication devices thatare associated with the animate bodies and configured to compute thelocations of the animate bodies.
 11. The method of claim 7, furtherincluding: computing subsequent locations of the animate bodies relativeto the floorplan based on directions from which subsequent radar returnsfrom the animate bodies are received at the radar devices installed atthe predetermined locations within the building; and determiningdirections of travel of the animate bodies, relative to the floorplan,based on the locations of the animate bodies and the subsequentlocations of the animate bodies.
 12. The method of claim 7, furtherincluding: tracking movements of the additional animate body relative tothe floorplan based on computed locations of the additional animate bodyrelative to the floorplan; and computing the suggested path for theadditional animate body based further on the tracked movements of theadditional animate body.
 13. A non-transitory computer readable mediumencoded with a computer program that includes instructions to cause aprocessor to: compute directions from which radar returns from animatebodies are received at radar devices installed at predeterminedlocations, wherein the radar devices are configured to transmit radarpulses from and receive radar returns at the respective predeterminedlocations within a building without necessitating the animate bodies tohold or wear the radar devices or a transducer; and compute locations ofthe animate bodies relative to a floorplan of the building based on thecomputed directions and the predetermined locations of the radar deviceswith the building; track movements of the animate bodies relative to thefloorplan based on the computed locations of the animate bodies;determine frequently used paths of the floorplan based on the trackedmovements of the animate bodies; determine a suggested path for anadditional animate body, from a location of the additional animate bodywithin the building to another location within the building, based onthe frequently used paths; and provide the suggested path to a wirelesscommunication device associated with the additional animate body. 14.The non-transitory computer readable medium of claim 13, wherein theradar devices include micro-power impulse radar devices installed at thepredetermined locations within the building.
 15. The non-transitorycomputer readable medium of claim 13, further including instructions tocause the processor to: detect inanimate objects within the buildingbased on radar returns from the inanimate objects received at the radardevices installed at the predetermined locations within the building,wherein the inanimate objects include one or more of a support structureof the building, a wall of the building, a partition within thebuilding, and a shelf within the building; and construct the floorplanbased on the detected inanimate objects.
 16. The non-transitory computerreadable medium of claim 13, further including instructions to cause aserver-based processor to: compute the directions from which the radarreturns from the animate bodies are received at the radar devicesinstalled at the predetermined locations within the building; andprovide the computed directions to wireless communication devices thatare associated with the animate bodies and configured to compute thelocations of the animate bodies.
 17. The non-transitory computerreadable medium of claim 13, further including instructions to cause theprocessor to: compute subsequent locations of the animate bodiesrelative to the floorplan based on directions from which subsequentradar returns from the animate bodies are received at the radar devicesinstalled at the predetermined locations within the building; anddetermine directions of travel of the animate bodies, relative to thefloorplan, based on the locations of the animate bodies and thesubsequent locations of the animate bodies.
 18. The non-transitorycomputer readable medium of claim 13, further including instructions tocause the processor to: track movements of the additional animate bodyrelative to the floorplan based on computed locations of the additionalanimate body relative to the floorplan; and determine a suggested pathfor the additional animate body based further on the tracked movementsof the additional animate body.